Starmer commits to 300bn defense budget