public function teamLeaveAction(Player $me, Conversation $conversation) { $team = $me->getTeam(); if (!$me->canEdit($team)) { throw new ForbiddenException("You are not allowed to remove your team from this conversation."); } elseif (!$conversation->isMember($team)) { throw new ForbiddenException("That team is not participating in this conversation."); } return $this->showConfirmationForm(function () use($conversation, $team) { $conversation->removeMember($team); $event = new ConversationAbandonEvent($conversation, $team); Service::getDispatcher()->dispatch(Events::CONVERSATION_ABANDON, $event); return new RedirectResponse($conversation->getURL()); }, "Are you sure you want to remove {$team->getEscapedName()} from this conversation?", "Your team is no longer participating in that conversation.", "Remove team"); }