hourly(); Schedule::call(function () { $article = Article::whereDoesntHave('articlePublications') ->where('is_valid', true) ->first(); if ($article) { try { logger()->info('Publishing article to Lemmy via scheduler', [ 'article_id' => $article->id, 'url' => $article->url ]); $extractedData = ArticleFetcher::fetchArticleData($article); LemmyPublisher::fromConfig()->publish($article, $extractedData); logger()->info('Successfully published article to Lemmy', [ 'article_id' => $article->id ]); } catch (Exception $e) { logger()->error('Failed to publish article to Lemmy via scheduler', [ 'article_id' => $article->id, 'error' => $e->getMessage() ]); } } else { logger()->debug('No unpublished valid articles found for Lemmy publishing'); } })->everyFifteenMinutes()->name('publish-to-lemmy');