select(['id', 'name']) ->when($search, fn ($q) => $q->where('name', 'like', "%{$search}%")) ->orderBy($sort, $direction) ->paginate($perPage); } public function getAll(): Collection { return Category::select(['id', 'name'])->latest()->get(); } public function store(array $data): Category { $category = Category::create($data); $this->logCreated( model: $category, module: 'Kategori', newValues: ['Nama' => $category->name], ); return $category; } public function update(Category $category, array $data): Category { $oldValues = ['Nama' => $category->name]; $category->update($data); $this->logUpdated( model: $category, module: 'Kategori', oldValues: $oldValues, newValues: ['Nama' => $category->name], ); return $category; } public function destroy(Category $category): bool { $this->logDeleted( model: $category, module: 'Kategori', oldValues: ['Nama' => $category->name], ); return $category->delete(); } }