На примере laravel увидел, что логика выносится в сервисы (или в экшены, если это одно действие), например
Правильно ли это делать в одном сервисе или надо как-то иначе, разбить все на разные классы?
Если говорить о Laravel, то как правильно в этом сервисе обращаться к другим классам? Передавать их из контроллера или делать их видимыми везде?
При создании всяких отчетов всегда появляется множество переменных, в которых что-либо хранится при расчетах
Я не помню что там passport:install делает - ну и лениво разбираться. Но что может вам помешать взять код команды https://github.com/laravel/passport/blob/8cae3ef2c...
И сделать из нее свою которая будет делать только то что вам нужно?