injectableFactory = $injectableFactory; $this->calendarFactory = $calendarFactory; } public function create(Calendar $calendar): CalendarUtility { return $this->injectableFactory->createWithBinding( CalendarUtility::class, BindingContainerBuilder::create() ->bindInstance(Calendar::class, $calendar) ->build() ); } public function createForUser(User $user): CalendarUtility { $calendar = $this->calendarFactory->createForUser($user); return $this->create($calendar); } public function createForTeam(Team $team): CalendarUtility { $calendar = $this->calendarFactory->createForTeam($team); return $this->create($calendar); } public function createGlobal(): CalendarUtility { $calendar = $this->calendarFactory->createGlobal(); return $this->create($calendar); } }