userSettingsGateway ??= new UserSettingsGateway( $this->createSettingsDefaultsGateway(), $this->createSettingsAppGateway(), $this->createSettingsUserLifecycleGateway() ); } public function getTenantScopeService(): TenantScopeService { return $this->tenantScopeService; } public function createUserDirectoryGateway(): UserDirectoryGateway { return $this->userDirectoryGateway ??= new UserDirectoryGateway( $this->directoryRepositoryFactory->createTenantRepository(), $this->directoryRepositoryFactory->createRoleRepository(), $this->directoryRepositoryFactory->createDepartmentRepository(), ); } public function createPermissionService(): PermissionService { return $this->permissionService ??= $this->accessServicesFactory->createPermissionService(); } private function createSettingsDefaultsGateway(): SettingsDefaultsGateway { return $this->settingsDefaultsGateway ??= $this->settingServicesFactory->createSettingsDefaultsGateway(); } private function createSettingsAppGateway(): SettingsAppGateway { return $this->settingsAppGateway ??= $this->settingServicesFactory->createSettingsAppGateway(); } private function createSettingsUserLifecycleGateway(): SettingsUserLifecycleGateway { return $this->settingsUserLifecycleGateway ??= $this->settingServicesFactory->createSettingsUserLifecycleGateway(); } }