Вместо того чтобы спрашивать объект о данных и принимать решение снаружи, нужно говорить объекту, что делать (передавать команды). Данные и поведение держать вместе.
// Ask: логика снаружи
if ($order->getStatus() === 'paid') { $order->setShipped(true); }
// Tell: логика внутри доменного объекта
$order->markAsShipped(); // внутри проверка статуса и обновлениеУкрепляет инкапсуляцию и переносит поведение в домен.