paginate(20); return view('tasks.index', compact('tasks')); } public function create(): View { $users = User::select(['id', 'first_name', 'last_name'])->get(); $clients = Client::select(['id', 'company_name'])->get(); $projects = Project::select(['id', 'title'])->get(); return view('tasks.create', compact('users', 'clients', 'projects')); } public function store(StoreTaskRequest $request): RedirectResponse { Task::create($request->validated()); return redirect()->route('tasks.index'); } public function edit(Task $task): View { $users = User::select(['id', 'first_name', 'last_name'])->get(); $clients = Client::select(['id', 'company_name'])->get(); $projects = Project::select(['id', 'title'])->get(); return view('tasks.edit', compact('task', 'users', 'clients', 'projects')); } public function update(UpdateTaskRequest $request, Task $task): RedirectResponse { $task->update($request->validated()); return redirect()->route('tasks.index'); } public function destroy(Task $task): RedirectResponse { Gate::authorize(PermissionEnum::DELETE_TASKS->value); $task->delete(); return redirect()->route('tasks.index'); } }