Z tego co czytałem. Tworzysz wystąpienie UserController z parametrem CompanyController.
Ta instancja jest wykonywana przed faktycznym wysłaniem wywołania Auth::login().
Ponieważ tworzysz instancję kontrolera firmy za pomocą __construct
przed uruchomieniem confirmUser
na userController
obiekt companyController istnieje przed Auth::login()
połączenie zostało wykonane.