Drupal 7 and Ubercart - admin approve sale before payment
I think you can do this by using Rules module.


  The Rules module allows site administrators to define conditionally
  executed actions based on occurring events (known as reactive or ECA
  rules). It's a replacement with more features for the trigger module
  in core and the successor of the Drupal 5 workflow-ng module.



You need to create a rule with below condition :



  Condition : Data comparison for the order state "Approved by admin" with
  a Negate option (checkbox in bottom).


So if you change the order state to "Approved by admin" this rule will not trigger anymore because this condition will return FALSE.