generateSearchDataTask->run($data['content']); } $department = Department::create($data); // Создаем SEO $this->generateSeo($department, $data); return $department; } private function generateSeo(Department $department, array $data): void { $title = $data['title'] ?? ''; $description = null; // Извлекаем description из первого paragraph блока if (!empty($data['content'])) { foreach ($data['content'] as $block) { if ($block['type'] === 'paragraph') { $description = strip_tags($block['data']['content']); break; } } } $department->seo()->create([ 'title' => $title, 'description' => Str::limit(htmlspecialchars($description ?? '', ENT_QUOTES, 'UTF-8'), 160), ]); } }