notable)) { return false; } return $note->visibility !== 'private' || $note->user_id === $user->id || $user->hasRole('admin'); } public function create(User $user, object $notable): bool { return $user->can('manage_call_notes') && AccessControl::canAccessEntity($user, $notable); } public function update(User $user, Note $note): bool { if (! $user->can('manage_call_notes') || ! $this->view($user, $note)) { return false; } return $note->user_id === $user->id || $user->hasRole('supervisor') || $user->hasRole('admin'); } public function delete(User $user, Note $note): bool { return $this->update($user, $note); } public function pin(User $user, Note $note): bool { return $user->can('pin_call_notes') && $this->view($user, $note); } }