name) { $data['slug'] = $this->generateUniqueSlug($data['name']); } // Если пароль пустой или null, удаляем из данных if (empty($data['password'])) { unset($data['password']); } // Извлекаем роли — они не в $fillable и не колонки таблицы $roles = $data['roles'] ?? null; unset($data['roles'], $data['permissions']); $user->update($data); // Синхронизация ролей if ($roles !== null && is_array($roles)) { $user->syncRoles($roles); } return $user->fresh(['roles', 'permissions']); } private function generateUniqueSlug(string $name): string { $slug = Str::slug($name); $count = 1; $baseSlug = $slug; while (User::where('slug', $slug)->exists()) { $slug = $baseSlug . '-' . $count; $count++; } return $slug; } }