```mermaid sequenceDiagram participant User participant PaymentGateway participant Database opt Successful Transaction User->>PaymentGateway: Initiate Payment PaymentGateway-->>User: Payment Confirmation User->>Database: Update Transaction Record Database-->>User: Transaction Updated User->>User: Payment Succeeded end opt External Failure User->>PaymentGateway: Initiate Payment PaymentGateway-->>User: Payment Error User->>User: Payment Failed end opt DB Failure User->>PaymentGateway: Initiate Payment PaymentGateway-->>User: Payment Confirmation User->>Database: Update Transaction Record Database-->>User: DB Error User->>PaymentGateway: Cancel Transaction PaymentGateway-->>User: Transaction Canceled end %% Commit and Rollback%% Note over User, PaymentGateway: Commit after successful transaction Note over User, Database: Rollback on DB failure ```