canAccessTenant($tenant)) { return false; } return app(CapabilityResolver::class)->can($user, $tenant, Capabilities::EVIDENCE_VIEW); } public function view(User $user, EvidenceSnapshot $snapshot): bool { $tenant = Tenant::current(); if (! $tenant instanceof Tenant || ! $user->canAccessTenant($tenant)) { return false; } if ((int) $snapshot->tenant_id !== (int) $tenant->getKey()) { return false; } return app(CapabilityResolver::class)->can($user, $tenant, Capabilities::EVIDENCE_VIEW); } public function create(User $user): bool { $tenant = Tenant::current(); if (! $tenant instanceof Tenant || ! $user->canAccessTenant($tenant)) { return false; } return app(CapabilityResolver::class)->can($user, $tenant, Capabilities::EVIDENCE_MANAGE); } public function delete(User $user, EvidenceSnapshot $snapshot): bool { $tenant = Tenant::current(); if (! $tenant instanceof Tenant || ! $user->canAccessTenant($tenant)) { return false; } if ((int) $snapshot->tenant_id !== (int) $tenant->getKey()) { return false; } return app(CapabilityResolver::class)->can($user, $tenant, Capabilities::EVIDENCE_MANAGE); } }