Checkout is intentionally step-based: fulfillment details first, package selection second, payment and placement last.
Fulfillment validation
Delivery window choices are validated against current cycle availability so households only see valid delivery slots.
Pricing updates
Selected cycle packages update order package rows and recalculate subtotal and total.
Placement and post-placement records
Placing an order transitions status, creates payment and notification rows, and assigns grouping state.
