authorizeResource(Task::class, 'task'); } /** * Display a listing of the resource. */ public function index(): TaskResourceCollection { $tasks = request()->user() ->tasks() ->latest() ->paginate(10); return new TaskResourceCollection($tasks); } /** * Store a newly created resource in storage. */ public function store(StoreTaskRequest $request) { $task = Auth::user()->tasks()->create($request->validated()); event(new TaskCreated($task)); // вынести бы из контроллера return new TaskResource($task) ->response() ->setStatusCode(Response::HTTP_CREATED) ->header('Location', route('tasks.show', $task)); } /** * Display the specified resource. */ public function show(Task $task): TaskResource { return new TaskResource($task); } /** * Update the specified resource in storage. */ public function update(UpdateTaskRequest $request, Task $task): TaskResource { $task->update($request->validated()); if ($task->status->isCompleted()) { $task->notified_at = null; $task->save(); } return new TaskResource($task); } /** * Remove the specified resource from storage. */ public function destroy(Task $task) { $task->delete(); return response()->noContent(); } }