Комментарии 2
Вроде звучит логично, а потом снова приходим к тому что бизнес таки попросит расчет скидки в CartOrder и BackofficeOrder, а ведь это сразу затронет еще и оба repo чтобы сохранить новую скидку в базе и вот у нас уже или дублирование расчета скидки в двух местах, либо расчет один где-то в некоем сервисе, а каждый *Order использует это, чтобы в будущем не случилось так что в разных местах скидка считается по разному
И так далее и тому подобное
а потом снова приходим к тому что бизнес таки попросит расчет скидки в CartOrder и BackofficeOrder
От этого не уйдёшь, это да :)
Но ситуация как будто обычная – как убрать дублирование кода и где должна жить логика. Трейты или сервисы или что угодно – вопрос рефакторинга и договорённостей.
Я бы даже сказал, что тут проблема дублирования и смешивания доменов будет заметнее, чем в случае с единой сущностью и тут и там.

Anemic vs Rich entities: нечестная дилемма