public function newCart(PhabricatorUser $actor, PhortuneCartImplementation $implementation, PhortuneMerchant $merchant)
 {
     $cart = PhortuneCart::initializeNewCart($actor, $this, $merchant);
     $cart->setCartClass(get_class($implementation));
     $cart->attachImplementation($implementation);
     $implementation->willCreateCart($actor, $cart);
     return $cart->save();
 }