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.