subHours(config('fileupload.chunk_cleanup_hours', 24)); $orphanedChunks = DB::table('upload_chunks') ->where('created_at', '<', $cutoff) ->get(); $this->info("Found {$orphanedChunks->count()} orphaned chunks"); $uploadIds = $orphanedChunks->pluck('upload_id')->unique(); foreach ($uploadIds as $uploadId) { // Delete directory for this upload_id $chunkPath = 'chunks/' . $uploadId; if (Storage::exists($chunkPath)) { Storage::deleteDirectory($chunkPath); $this->info("Deleted chunk directory: {$chunkPath}"); } // Delete database records DB::table('upload_chunks')->where('upload_id', $uploadId)->delete(); } $this->info("Cleanup complete. Removed chunks for {$uploadIds->count()} uploads."); return 0; } }