Use save! when modifying the order

`save` will silently ignore any errors. It is much better to raise an error than to silently fail.
hey @jhawthorn this breaks some test in checkout_spec could you take a look please?