projectPermissionService->userCanViewProject($request->user(), $project), 403, ); return Inertia::render('projects/Ticket', [ 'canEditTicket' => $this->projectPermissionService->userHasPermission($request->user(), $project, 'edit'), 'project' => $project, 'status' => session('status'), 'ticket' => $ticket->load([ 'fieldValues.ticketFieldDefinition', 'fieldValues.userValue', 'ticketPriority', 'ticketType', 'worklogEntries.actor', ]), 'ticketFieldDefinitions' => $project->ticketFieldDefinitions()->get(), 'ticketPriorities' => $project->ticketPriorities()->get(), 'ticketTypes' => $project->ticketTypes()->get(), 'users' => User::query() ->orderBy('name') ->get(), ]); } public function update( UpdateProjectTicketRequest $request, Project $project, Ticket $ticket, ): RedirectResponse { abort_unless( $this->projectPermissionService->userHasPermission($request->user(), $project, 'edit'), 403, ); $wasUpdated = $this->updateProjectTicket->handle( $ticket, $request->user(), $request->ticketAttributes(), $request->fieldValues(), ); $statusMessage = $wasUpdated ? "{$ticket->ticket_key} was updated." : 'No ticket changes were detected.'; return to_route('projects.tickets.show', [$project, $ticket]) ->with('status', $statusMessage); } }