Я тоже думал об этом подходе, но возникают сложности с большим объемом данных. Т.е. в идеальном варианте должно быть два хэндлера:
EditArticle UserEditAcrticle А так же у них свои DTO
Но если входных данных будет много, то маппинг одного DTO в другое будет довольно большим по коду.
Т.е. проверка прав 1 строчка, а маппинг - 10
та и маппинг может быть в 1 строку. никто ж не запрещает делать именованные конструкторы
EditArticleCommand::fromUserCommand(UserEditArticleCommand): self