hasRole('platform-admin') || $actor->hasRole('school-admin') || $actor->hasRole('teacher'); } public function view(User $actor, User $target): bool { if ($actor->hasRole('platform-admin')) return true; return $actor->tenant_id === $target->tenant_id; } public function create(User $actor): bool { return $actor->hasRole('platform-admin') || $actor->hasRole('school-admin'); } public function update(User $actor, User $target): bool { if ($actor->hasRole('platform-admin')) return true; return $actor->hasRole('school-admin') && $actor->tenant_id === $target->tenant_id; } public function delete(User $actor, User $target): bool { if ($actor->hasRole('platform-admin')) return true; return $actor->hasRole('school-admin') && $actor->tenant_id === $target->tenant_id; } }