validate([ 'name' => ['required', 'string', 'max:255'], ]); $slug = Str::slug($request->name); // Ensure unique slug $originalSlug = $slug; $counter = 1; while (FileCategory::where('slug', $slug)->exists()) { $slug = $originalSlug . '-' . $counter++; } $maxOrder = FileCategory::max('sort_order') ?? 0; FileCategory::create([ 'name' => $request->name, 'slug' => $slug, 'sort_order' => $maxOrder + 1, ]); return back()->with('success', __('admin.category_created')); } public function update(Request $request, FileCategory $category): RedirectResponse { $request->validate([ 'name' => ['required', 'string', 'max:255'], 'is_active' => ['nullable', 'boolean'], ]); $category->update([ 'name' => $request->name, 'is_active' => $request->boolean('is_active'), ]); return back()->with('success', __('admin.category_updated')); } public function destroy(FileCategory $category): RedirectResponse { if ($category->files()->exists()) { return back()->with('error', __('admin.category_not_empty')); } $category->delete(); return back()->with('success', __('admin.category_deleted')); } }