public static function updateRole(AclRole $role) { DB::beginTransaction(); $dbRole = static::find($role->role_id); if (!$dbRole) { throw new Exception("Role not found: " . $role->role_id); } if ($dbRole->name !== $role->name && !$dbRole->default) { $dbRole->name = $role->name; $dbRole->save(); } RolePermission::updateRolePermissions($role); UserRole::updateRoleUsers($role); DB::commit(); return $role->role_id; }