create(); $productModels = Product::all(); foreach ($productModels as $productModel) { $rangeModel = Range::inRandomOrder()->first(); // Morph relationships (Range/Subrange). DB::table('productables')->insert( [ 'product_id' => $productModel->id, 'productable_id' => $rangeModel->id, 'productable_type' => 'App\Models\Range' ] ); if (\fake()->boolean(75)) { /** @var \Illuminate\Database\Eloquent\Collection $subrangeModels */ $subrangeModels = $rangeModel->subranges; DB::table('productables')->insert( [ 'product_id' => $productModel->id, 'productable_id' => $subrangeModels->random()->id, 'productable_type' => 'App\Models\Subrange' ] ); } if (\fake()->boolean(75)) { $meatModel = Meat::inRandomOrder()->first(); // Morph relationships (Meat/Submeat). DB::table('productables')->insert( [ 'product_id' => $productModel->id, 'productable_id' => $meatModel->id, 'productable_type' => 'App\Models\Meat' ] ); // @phpstan-ignore-next-line if (\fake()->boolean(75)) { /** @var \Illuminate\Database\Eloquent\Collection $submeatModels */ $submeatModels = $meatModel->submeats; DB::table('productables')->insert( [ 'product_id' => $productModel->id, 'productable_id' => $submeatModels->random()->id, 'productable_type' => 'App\Models\Submeat' ] ); } } //end if } //end foreach } }