- Reduce cURL timeout from 10s to 3s total (2s connection)
- Add better error messages for spooler failures
- Continue processing remaining items if one fails
- Prevents getting stuck when spooler is slow/unreachable
- Create PdfBatchService class with generatePdf() method
- Extract PDF generation logic from ReportController for reuse
- Update SuperuserController to use direct method calls instead of HTTP/cURL
- Eliminates HTTP overhead for ~10x faster batch processing