read($source); $maxSize = 1920; if ($width && $height) { $image->cover($width, $height); } elseif ($width || $image->width() > $maxSize) { $image->scale(width: $width ?? $maxSize); } elseif ($height || $image->height() > $maxSize) { $image->scale(height: $height ?? $maxSize); } if ($extension === 'webp') { $image->toWebp($quality)->save($target); } else if ($extension === 'jpeg') { $image->toJpeg($quality)->save($target); } else if ($extension === 'png') { $image->toPng()->save($target); } } }