add a check to prevent skipping checkout steps

Fixes #2764
Fix issue where calling @order.payment? may result in an ':payment is an invalid name' error from state_machine

Fixes #2910