Refactored Order.purchase to elimiate pyramid of doom and make code easier to read and moved logic to create cart after purchase to Order.purchase