Спасибо за развёрнутый ответ. Да, действительно, часто ловлю себя на мысли что мы именно пишем в ООП синтаксисе, а не в ООП. Очень много protected методов, от которых избавиться пока не хватает знаний и опыта.
Насчёт состояния понятно, а вот с примерами не очень.
Два калькулятора, реализуют один интерфейс, окей. Но в чём смысл класса Delivery? Нам нужен расчёт именно по нескольким службам сразу, а не по одной.
Если просто установить ось на диск, а потом перекидывать его на другой комп, есть большая вероятность что она просто не запустится, из-за несовместимости оборудования.
Думаю без join не получится. Как вариант, join можно вынести в отдельное отношение.
Ещё есть либа, которая вроде как решает эту проблему, но сам не пользовался: fico7489/laravel-eloquent-join
у PHPSESSID и ещё одной сессионной куки стоит флаг httpOnly, и тем не менее они тоже пропадают. В общем-то только они и важны, т.к. авторизация слетает. Есть ли смысл отслеживать document.cookie, если стоят флаги httpOnly и JS по идее не имеет к ним доступа?