user(); abort_unless( $this->permissionService->allows($user, Permission::ProjectWrite, $project), 403, ); $ticketLink = $this->storeProjectTicketLink->handle($project, $ticket, $user, $request->validated()); $label = $ticketLink->ticketLinkType->labelForSource($ticketLink->source_ticket_id === $ticket->id); return to_route('projects.tickets.show', [$project, $ticket]) ->with('status', "{$label} link was saved."); } public function destroy( Request $request, Project $project, Ticket $ticket, TicketLink $ticketLink, ): RedirectResponse { $user = $request->user(); abort_unless( $this->permissionService->allows($user, Permission::ProjectWrite, $project), 403, ); $label = $this->deleteProjectTicketLink->handle($ticket, $ticketLink, $user); return to_route('projects.tickets.show', [$project, $ticket]) ->with('status', "{$label} link was removed."); } }