onQueue('ai-content'); } public function handle(LlmProvider $llm, AiSettings $settings): void { if (! $settings->content_optimization_enabled) { return; } $article = Article::query()->find($this->articleId); if ($article === null) { return; } try { $result = $llm->complete($article->content, [ 'title' => $article->title, 'article_id' => $article->id, ]); $article->forceFill([ 'ai_summary' => $result['summary'] ?? null, 'ai_suggestions' => $result['suggestions'] ?? [], ])->save(); } catch (\Throwable $exception) { Log::warning('Article content optimization failed.', [ 'article_id' => $this->articleId, 'message' => $exception->getMessage(), ]); } } }