source = Storage::disk('images')->path($this->image->album_id . '/original/' . $this->image->id . '.avif'); $this->destination = $this->image->album_id . '/lightbox/' . $this->image->id . '.avif'; } public function handle(): void { if ($this->batch()->cancelled()) { return; } $image = InterventionImage::read($this->source); if($image->width() >= $image->height()) { // landscape $image->scaleDown(width: config('gallery.image.fullscreen.maxWidth', 2000)); } else { // portrait $image->scaleDown(height: config('gallery.image.fullscreen.maxHeight', 2000)); } Storage::disk('images')->put($this->destination, $image->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 ]); } }