1. check roofer license requirement in your state
https://www.nextinsurance.com/blog/roofing-license-requirements/
If your state requires a license for roofers, you can go to licensing board to file a complaint.
2. Ask for the roofer's insurance, because his bad workmanship caused further damage and his insurance should pay.
3. Find another roofer to fix the job, and sue this roofer for reimbursement. Check your local small claim court damage limit
https://www.nolo.com/legal-encyclopedia/small-claims-suits-how-much-30031.html
Next time you need to say which state.