Refactored Order.purchase to elimiate pyramid of doom and make code easier to read