Just suggestion, it is better to use tiny integer instead.
If you want to keep this way, you will need to use order by field() function
Example: You will have to list out all the statuses, else mysql will order the unlisted status first.
Order::orderByRaw('FIELD(order_status,pending,deliver,expired) asc')->get();