tenantScopeService ??= new TenantScopeService( $this->createTenantRepository(), $this->createDepartmentRepository(), $this->createUserTenantRepository(), $this->createPermissionService() ); } public function createTenantLogoService(): TenantLogoService { return $this->tenantLogoService ??= new TenantLogoService(); } public function createTenantFaviconService(): TenantFaviconService { return $this->tenantFaviconService ??= new TenantFaviconService(); } public function createTenantRepository(): TenantRepositoryInterface { return $this->tenantRepositoryFactory->createTenantRepository(); } public function createDepartmentRepository(): DepartmentRepositoryInterface { return $this->tenantRepositoryFactory->createDepartmentRepository(); } public function createUserTenantRepository(): UserTenantRepositoryInterface { return $this->tenantRepositoryFactory->createUserTenantRepository(); } public function createPermissionService(): PermissionService { return $this->permissionService; } }