```mermaid sequenceDiagram participant User participant PaymentGateway participant PaymentService participant Database User->>+PaymentService: Start Payment PaymentService->>+PaymentGateway: Process Payment PaymentGateway-->>-PaymentService: Payment Success PaymentService->>Database: Record Payment Database-->>-PaymentService: Payment Recorded PaymentService-->>-User: Payment Confirmed %% External Failure User->>+PaymentService: Start Payment PaymentService->>+PaymentGateway: Process Payment PaymentGateway-->>-PaymentService: Payment Failed PaymentService-->>-User: Payment Failed %% DB Failure User->>+PaymentService: Start Payment PaymentService->>+PaymentGateway: Process Payment PaymentGateway-->>-PaymentService: Payment Success PaymentService->>Database: Record Payment Database-->>-PaymentService: DB Failure PaymentService-->>-User: Payment Processing Error %% Commit/Rollback Note over PaymentService: Commit if successful Note over PaymentService: Rollback if there's an error ```