belongsToTeam($team); } /** * Determine whether the user can create models. */ public function create(User $user): bool { return true; } /** * Determine whether the user can update the model. */ public function update(User $user, Team $team): bool { return $user->hasTeamPermission($team, TeamPermission::UpdateTeam); } /** * Determine whether the user can add a member to the team. */ public function addMember(User $user, Team $team): bool { return $user->hasTeamPermission($team, TeamPermission::AddMember); } /** * Determine whether the user can update a member's role in the team. */ public function updateMember(User $user, Team $team): bool { return $user->hasTeamPermission($team, TeamPermission::UpdateMember); } /** * Determine whether the user can remove a member from the team. */ public function removeMember(User $user, Team $team): bool { return $user->hasTeamPermission($team, TeamPermission::RemoveMember); } /** * Determine whether the user can invite members to the team. */ public function inviteMember(User $user, Team $team): bool { return $user->hasTeamPermission($team, TeamPermission::CreateInvitation); } /** * Determine whether the user can cancel invitations. */ public function cancelInvitation(User $user, Team $team): bool { return $user->hasTeamPermission($team, TeamPermission::CancelInvitation); } /** * Determine whether the user can delete the model. */ public function delete(User $user, Team $team): bool { return ! $team->is_personal && $user->hasTeamPermission($team, TeamPermission::DeleteTeam); } }