create(); /** @var \Illuminate\Database\Eloquent\Collection $brands */ $brands = ArcadiaBrand::factory(10)->create(); // * Associate brands to services $services->map(function (Service $service) use (&$brands) { $pullBrands = $brands->random(rand(1, 2)); $service->arcadiaBrands()->sync($pullBrands); $brands = $brands->diff($pullBrands); }); $disk = Storage::disk('inco'); $brands->map(function (ArcadiaBrand $brand) use ($disk) { XmlInco::factory(rand(150, 355))->make() ->each(function (XmlInco $xmlInco) use ($disk, $brand) { $xmlInco->pictures = collect([ new SplFileInfo(resource_path('seeders/xml_inco/fakeimage1.png')), new SplFileInfo(resource_path('seeders/xml_inco/fakeimage2.png')) ])->random(rand(0, 2))->map(function (SplFileInfo $image) use ($disk) { $imgNamePath = $image->getFilename(); $imageFinalPath = "images/inco/$imgNamePath"; $disk->put($imgNamePath, File::get($image->getPathname())); return $imageFinalPath; })->all(); $xmlInco->arcadiaBrand()->associate($brand); $xmlInco->saveOrFail(); }); }); } }