paginate($limit); } return $baseQuery->get(); } public function storeDesignation(array $designationData): Designation { return DB::transaction(function () use ($designationData) { $designation = Designation::create($designationData); return $designation; }); } public function getDesignationById(int $id) { return Designation::findOrFail($id); } public function updateDesignation(int $id, array $designationData) { $designation = $this->getDesignationById($id); return DB::transaction(function () use ($designation, $designationData) { $designation->update($designationData); return $designation; }); } public function deleteDesignation(int $id) { return DB::transaction(function () use ($id) { $designation = $this->getDesignationById($id); $designation->delete(); return $designation; }); } public function pluck(callable $query = null) { $baseQuery = Designation::query(); if (is_callable($query)) { $query($baseQuery); } return $baseQuery->pluck('title', 'id'); } }