source = Storage::disk('images')->path($this->image->album_id . '/original/' . $this->image->id . '.avif'); $this->destination = $this->image->album_id . '/thumbnail/' . $this->image->id . '.avif'; } public function handle(): void { if ($this->batch()->cancelled()) { return; } $thumbnail = InterventionImage::read($this->source); $thumbnail = $thumbnail->scaleDown(height: config('gallery.image.thumbnail.height', 640), width: config('gallery.image.thumbnail.width', 640)); Storage::disk('images')->put($this->destination, $thumbnail->toAvif(config('gallery.image.quality', 80))); } public function failed(?Throwable $exception): void { $this->image->delete(); Log::error($exception, [ 'image' => $this->image, 'source' => $this->source, 'destination' => $this->destination ]); } }