More compact worfklow_state definition in Purchase

The standard way of defining states using the `workflow` gem tends to get very repetitive, so I tidied up the state definition in Purchase.