seo()->create($this->generateSeo($record)); } public function updateSeo($record): void { if ($record->seo()->exists()) { $record->seo()->update($this->generateSeo($record)); } else { $this->createSeo($record); } } private function generateSeo($record) { return app(SeoGeneratorService::class)->generate([ 'title' => $record->title, 'content' => $record instanceof SeoDescriptionInterface ? $record->getSeoDescription() : $record->content, 'preview' => $record->preview, ]); } }