D'après ce que j'ai lu. Vous instanciez le UserController avec le paramètre CompanyController.
Cette instanciation est effectuée avant que vous n'ayez réellement envoyé l'appel Auth::login().
Comme vous instanciez le contrôleur de l'entreprise avec __construct
avant d'exécuter confirmUser
sur le userController
l'objet companyController existe avant le Auth::login()
l'appel est passé.