При этом у тебя единая точка входа, которая отвечает за авторизацию / инит и проверку нужных данных в куках, и отвечает за выбор реализации конкретной фабрики для работы логики, зависимой от этого выбора
т.е. ты на посредника возложил роль Service Provider, т.е. его назначение через метод register регистрировать зависимости, что то тут не так, это в корне не верно