*/ public function createSession(Order $order, PaymentMethod $paymentMethod): array; /** * Confirm a gateway payment against a local payment record. * * @param array $gatewayData */ public function confirmPayment(Payment $payment, array $gatewayData): Payment; public function refund(Payment $payment, float $amount, string $reason): Refund; public function validateWebhookSignature(Request $request): bool; /** * Parse the request payload into a normalised gateway event. * * @return array */ public function parseWebhookEvent(Request $request): array; }