*/ class ImageFactory extends Factory { /** * Configure the model factory. */ public function configure(): static { return $this->afterCreating(function (Image $image) { if($image->album->images->sortBy('id')->first()->id == $image->id) { $image->isCover = true; $image->save(); } $height = rand(2000, 4000); $width = rand(2000, 4000); $image_content = Http::get("https://picsum.photos/{$width}/{$height}")->body(); $encoded = InterventionImage::read($image_content)->toAvif(config('gallery.image.quality')); Storage::disk('images')->put($image->album->id . '/original/' . $image->id . '.avif', $encoded); GenerateThumbnail::dispatch($image); GenerateFullscreen::dispatch($image); }); } /** * Define the model's default state. * * @return array */ public function definition(): array { return [ 'album_id' => Album::all()->random(1)->first()->id, 'isCover' => false, ]; } }