where('user_id', request()->user()->id) ->whereNull('parent_id') ->with(['children.feeds', 'feeds']) ->orderBy('title') ->get(); } public function index(): Response { $categories = $this->getAll(); return Inertia::render('Settings/Index', [ 'categories' => $categories, ]); } public function store(StoreCategoryRequest $request): RedirectResponse { DB::transaction(function () use ($request) { $category = Category::create([ 'user_id' => $request->user()->id, 'parent_id' => $request->input('parent_id'), 'title' => $request->input('title'), 'description' => $request->input('description'), ]); $category->feeds()->createMany($request->input('feeds', [])); }); return back(); } public function update(UpdateCategoryRequest $request, Category $category): RedirectResponse { DB::transaction(function () use ($request, $category) { $category->update([ 'parent_id' => $request->input('parent_id'), 'title' => $request->input('title'), 'description' => $request->input('description'), ]); $category->feeds()->delete(); $category->feeds()->createMany($request->input('feeds', [])); }); return back(); } public function destroy(Category $category): RedirectResponse { abort_unless($category->user_id === request()->user()->id, 403); $category->delete(); return back(); } }