а? Если нет и нужно все равно писать абсолютно всю логику в обьекте модели, то тогда он станет просто god обьектом на 100500 строчек
Потому что вы все делаете наоборот!
Пишите по бизнес-процессу ваши UseCase, это некоторый хэндлер к примеру
Примерfinal class HandleCheckOutShoppingCart
{
public function __construct(Carts $carts, PaymentGateway $gateway)
{
$this->carts = $carts;
$this->gateway = $gateway;
}
public function __invoke(CheckOutShoppingCart $command) : void
{
$shoppingCart = $this->carts->get($command->shoppingCart());
$payment = $this->gateway->captureCharge($command->charge());
$shoppingCart->checkOut($payment);
}
}
Потом у вас вырисовываются границы сущности, и в сущностях уже инварианты, которые контролирует эта сущность. Никаких god object