user(); abort_unless( $this->projectPermissionService->userCanViewProject($user, $project), 403, ); return Inertia::render('projects/Backlog', [ 'boardColumns' => $project->boardColumns()->get(), 'canEditTickets' => $this->projectPermissionService->userHasPermission($user, $project, 'edit'), 'canCreateTickets' => $this->projectPermissionService->userHasPermission($user, $project, 'create'), 'project' => $project, 'status' => session('status'), 'ticketPriorities' => $project->ticketPriorities()->get(), 'ticketTypes' => $project->ticketTypes()->get(), 'tickets' => Ticket::query() ->with(['ticketPriority', 'ticketType']) ->where('project_id', $project->id) ->whereNull('board_column_id') ->orderByDesc('sequence_number') ->get(), ]); } public function store(StoreProjectTicketRequest $request, Project $project): RedirectResponse { $user = $request->user(); $validated = $request->validated(); abort_unless( $this->projectPermissionService->userHasPermission($user, $project, 'create'), 403, ); $ticket = $this->createProjectTicket->handle($project, $validated, $user); return to_route('projects.backlog.index', $project) ->with('status', "{$ticket->ticket_key} was added to the backlog."); } }