first(); $articles = (new ThiladhunService)->scrape(); foreach ($articles as $article) { // Attach the relationship between source and article and return the curren article instance $articleModel = $source->articles()->firstOrCreate([ "title" => $article["title"], "url" => $article["url"], "author" => $article["author"], "featured_image" => $article["image"], "body" => $article["content"], "guid" => $article["guid"], "published_date" => Carbon::parse($article["date"])->format("Y-m-d H:i:s"), "meta" => [ "title" => $article["og_title"] ] ]); collect($article["topics"])->each(function ($topic) use ($articleModel) { $topicModel = Topic::firstOrCreate([ "name" => $topic["name"], "slug" => $topic["slug"], ]); $topicModel->articles()->syncWithoutDetaching($articleModel); }); } } }