ProviderConnectionPolicy::class, ]; public function boot(): void { $this->registerPolicies(); $resolver = app(CapabilityResolver::class); $defineTenantCapability = function (string $capability) use ($resolver): void { Gate::define($capability, function (User $user, Tenant $tenant) use ($resolver, $capability): bool { return $resolver->can($user, $tenant, $capability); }); }; foreach ([ Capabilities::PROVIDER_VIEW, Capabilities::PROVIDER_MANAGE, Capabilities::PROVIDER_RUN, Capabilities::TENANT_MEMBERSHIP_VIEW, Capabilities::TENANT_MEMBERSHIP_MANAGE, Capabilities::TENANT_ROLE_MAPPING_VIEW, Capabilities::TENANT_ROLE_MAPPING_MANAGE, Capabilities::AUDIT_VIEW, Capabilities::TENANT_VIEW, Capabilities::TENANT_MANAGE, Capabilities::TENANT_DELETE, Capabilities::TENANT_SYNC, ] as $capability) { $defineTenantCapability($capability); } foreach (PlatformCapabilities::all() as $capability) { Gate::define($capability, function (PlatformUser $user) use ($capability): bool { return $user->hasCapability($capability); }); } } }