id); $articleData = ArticleFetcher::fetchArticleData($article); // Update article with fetched data (title, description, etc.) $updateData = [ 'validated_at' => now(), ]; if (!empty($articleData)) { $updateData['title'] = $articleData['title'] ?? null; $updateData['description'] = $articleData['description'] ?? null; $updateData['full_article'] = $articleData['full_article'] ?? null; $updateData['thumbnail'] = $articleData['thumbnail'] ?? null; } if (!isset($articleData['full_article']) || empty($articleData['full_article'])) { logger()->warning('Article data missing full_article key', [ 'article_id' => $article->id, 'url' => $article->url ]); $updateData['is_valid'] = false; $article->update($updateData); return $article->refresh(); } $validationResult = self::validateByKeywords($articleData['full_article']); $updateData['is_valid'] = $validationResult; $article->update($updateData); return $article->refresh(); } private static function validateByKeywords(string $full_article): bool { $keywords = [ 'N-VA', 'Bart De Wever', 'Frank Vandenbroucke', ]; foreach ($keywords as $keyword) { if (stripos($full_article, $keyword) !== false) { return true; } } return false; } }