where('expires_at', '<=', now()) ->get(); foreach ($expired as $upload) { try { // Proxmox delete via storage API when upload service is wired Log::info('ISO upload expired', ['volid' => $upload->volid, 'user_id' => $upload->user_id]); } catch (\Throwable $e) { Log::warning('ISO purge failed', ['id' => $upload->id, 'error' => $e->getMessage()]); } $upload->delete(); } $this->info("Purged {$expired->count()} expired ISO upload(s)."); return self::SUCCESS; } }