group(function (): void { Route::get('create', [ProjectTicketController::class, 'create'])->name('create'); Route::post('/', [ProjectTicketController::class, 'store'])->name('store'); }); Route::prefix('{ticket}')->group(function (): void { Route::get('/', [ProjectTicketController::class, 'show']) ->middleware('can:view-project,project') ->name('show'); Route::middleware('can:write-project,project')->group(function (): void { Route::patch('/', [ProjectTicketController::class, 'update'])->name('update'); Route::patch('status', [ProjectBoardController::class, 'move'])->name('status.update'); Route::prefix('branches') ->name('branches.') ->controller(ProjectTicketBranchController::class) ->group(function (): void { Route::get('validate', 'validate')->name('validate'); Route::post('/', 'store')->name('store'); }); Route::prefix('links') ->name('links.') ->controller(ProjectTicketLinkController::class) ->group(function (): void { Route::post('/', 'store')->name('store'); Route::delete('{ticketLink}', 'destroy') ->withoutScopedBindings() ->name('destroy'); }); }); });