postDataProcessor->processCreate($data); $tags = $processedData['tags'] ?? null; // Удаляем теги из данных, так как они обрабатываются отдельно unset($processedData['tags']); $post = Post::create($processedData); // Синхронизируем теги если они есть if (!empty($tags) && is_array($tags)) { $post->syncTags($tags); } return $post; } /** * Генерирует уникальный slug */ public function generateUniqueSlug(string $baseSlug): string { $slug = $baseSlug; $count = 1; while (Post::where('slug', $slug)->exists()) { $slug = $baseSlug . '-' . $count; $count++; } return $slug; } }