chunk(20, function ($medias) use ($disk, $cloud) { foreach ($medias as $media) { if (! str_starts_with($media->media_path, 'public')) { continue; } if ($disk->exists($media->media_path) && $cloud->exists($media->media_path)) { $disk->delete($media->media_path); } if ($media->thumbnail_path) { if ($disk->exists($media->thumbnail_path)) { $disk->delete($media->thumbnail_path); } } $paths = explode('/', $media->media_path); if (count($paths) === 7) { array_pop($paths); $baseDir = implode('/', $paths); if (count($disk->allFiles($baseDir)) === 0) { $disk->deleteDirectory($baseDir); array_pop($paths); $baseDir = implode('/', $paths); if (count($disk->allFiles($baseDir)) === 0) { $disk->deleteDirectory($baseDir); array_pop($paths); $baseDir = implode('/', $paths); if (count($disk->allFiles($baseDir)) === 0) { $disk->deleteDirectory($baseDir); } } } } } }); } }