public function cancel()
    {
        if (!$this->payment->IsComplete()) {
            $this->payment->Status = 'Void';
            $this->payment->write();
            ErrorHandling::safeExtend($this->payment, 'onCancelled');
        }

        return $this->generateServiceResponse(ServiceResponse::SERVICE_CANCELLED);
    }