I d use Bolean True/false properties.
Bol1 : Ordering
Bol2 : Orderclosed
Bol3 : Orderbeingprepared
Bol4 : ordersent.
You just change false to True each time an order status changes.
Once an order is Closed, the client cannot modify it. But the Sales yes, they can edit an item qty that is out of stock and advise the client.
that way you do not make copies of the original order in various collections and you can add Combos on Step 3 to indicate : OutofStock, color not available etc that will be displayed for both, client and Sales…
Very easy to filter in the Dashboard.
*Only drawback, you may fix a limit for number of order lines (colections columns indeed) for a single order.