Boris Johnson vows £5M help for veterans amid Afghanistan criticism