What WordPress handles for roofers
Quote requests with roof type and photos. A form plugin such as Contact Form 7 collects the job details; photo uploads and conditional fields depend on the plugin chosen.
Before and after project photos. The core Gallery block arranges project photos in columns, with an option to enlarge each image on click.
Areas you service. There is no core feature for this, so a suburb or postcode check is built as a small custom block.
Storm damage and leak call-outs. A tap-to-call phone link and a clear note about after-hours availability are ordinary page content.