where('codigo', 'onticket')->first(); if ($tenant?->storefront_website_type_code !== 'onticket_multi_event') { return; } if ($tenant->websiteExtras()->whereHas( 'websiteTypeExtra', fn ($query) => $query->where('codigo', 'immersiveHeroCarousel') )->exists()) { return; } $images = array_map(function (string $filename): UploadedFile { $path = public_path("images/tennants/onticket/onticket_tennant_hero_carousel/{$filename}"); if (! is_file($path)) { throw new RuntimeException("Image not found at path: {$path}"); } $mimeType = match (strtolower(pathinfo($filename, PATHINFO_EXTENSION))) { 'jpg', 'jpeg', 'jfif' => 'image/jpeg', 'avif' => 'image/avif', default => 'image/png', }; return new UploadedFile($path, $filename, $mimeType, null, true); }, self::IMAGES); $this->websiteExtraService->updateForTenant($tenant, 'immersiveHeroCarousel', $images); } }