Von dem, was ich gelesen habe. Sie instanziieren den UserController mit dem Parameter CompanyController.
Diese Instanziierung erfolgt, bevor Sie den Auth::login()-Aufruf tatsächlich gesendet haben.
Während Sie den Unternehmenscontroller mit __construct instanziieren bevor Sie confirmUser ausführen auf dem userController das Objekt companyController existiert vor Auth::login() Anruf wird getätigt.