Если в конструкторе или методе указать тайп хинт и название переменной, и use в шапке, автоматом создастся класс.
use Illuminate\Http\Request;
public function __construct(Request $request)
$request->делай_что-то
Все работает при передаче данных из роута в контроллер, когда срабатывает по сути первый конструктор системы.
Дальше, роутер подтягивает бизнес логику и тут я не понимаю, как это должно быть верно.
class Controller запускает бизнес класс
new Business($a) - здесь идет передача в конструктор зависимости-класса - все как обычно
Если ничего не передавать new Business() - то выйдет ошибка
class Business - у него есть есть свой конструктор, и дальше по цепочке могут еще быть
public function __construct(BigA $a) - а по идее должно подставится и автоматом все подтянуться.
Я явно не понимаю, какой-то момент, но не могу его нигде найти текстах.