https://github.com/symfony/demo/blob/master/src/Controller/UserController.php но для вот такого круда, усложнять
https://github.com/symfony/demo/blob/master/src/Entity/User.php какой смысл?
юзер == креды, в данном контексте. поэтому интерфейс UserInterface вполне ок
Assert - потому что юзер == реквест, в данном контексте тоже ок. но я б у себя на проекте отделил их все же на отдельную реквест дто
setUserName - тут не понимаю, то ли от самого сеттера горит что не
changeUsername
, и не вернули доменный ивент, то ли от самого сеттера, вместо паблик проперти