user(); abort_unless( $this->permissionService->allows($user, Permission::ProjectRead, $project), 403, ); return Inertia::render( 'projects/Board', $this->buildProjectBoardPayload->handle($project, $user, session('status')), ); } public function move( MoveProjectTicketRequest $request, Project $project, Ticket $ticket, ): RedirectResponse { $user = $request->user(); abort_unless( $this->permissionService->allows($user, Permission::ProjectWrite, $project), 403, ); $validated = $request->validated(); $redirectRoute = Arr::get($validated, 'redirect_to') === 'backlog' ? 'projects.backlog.index' : 'projects.board.index'; $result = $this->moveProjectTicket->handle($project, $ticket, $user, $validated); if (! $result['moved']) { return to_route($redirectRoute, $project) ->with('status', "{$ticket->ticket_key} already belongs to {$result['destination_label']}."); } return to_route($redirectRoute, $project) ->with('status', "{$ticket->ticket_key} moved to {$result['destination_label']}."); } }