first(); if ($dasborMenu) { $userGroup->permissions()->create(['menu_id' => $dasborMenu->id]); } DB::commit(); return $userGroup; } catch (\Exception $e) { DB::rollBack(); throw $e; } } public function update(UserGroup $userGroup, array $data) { try { DB::beginTransaction(); $userGroup->update($data); DB::commit(); return $userGroup; } catch (\Exception $e) { DB::rollBack(); throw $e; } } public function delete(UserGroup $userGroup) { try { DB::beginTransaction(); $userGroup->delete(); DB::commit(); return true; } catch (\Exception $e) { DB::rollBack(); throw $e; } } public function updatePermissions(UserGroup $userGroup, array $permissions) { try { DB::beginTransaction(); $userGroup->permissions()->delete(); foreach ($permissions as $menuId) { Permission::create(['user_group_id' => $userGroup->id, 'menu_id' => $menuId]); } DB::commit(); return true; } catch (\Exception $e) { DB::rollBack(); throw $e; } } }