public function pay() { $this->beforePayment(); $this->status = self::STATUS_UNSHIPPED; $this->clearCancelledMsg(); if (!$this->save(false)) { return false; } $this->afterPayment(); return true; }