permissionService ??= new PermissionService( $this->accessRepositoryFactory->createPermissionRepository(), $this->accessRepositoryFactory->createRolePermissionRepository(), $this->accessRepositoryFactory->createUserRoleRepository(), $this->auditServicesFactory->createSystemAuditService(), $this->sessionStore ); } public function createPermissionGateway(): PermissionGateway { return $this->permissionGateway ??= new PermissionGateway($this->createPermissionService()); } }