```mermaid sequenceDiagram participant User participant PaymentGateway participant Bank %% Normal flow User ->> PaymentGateway: Request Payment PaymentGateway ->> Bank: Process Payment Bank -->> PaymentGateway: Payment Approved PaymentGateway -->> User: Payment Confirmation %% External failure branch User ->> PaymentGateway: Request Payment PaymentGateway ->> Bank: Process Payment Bank -->> PaymentGateway: Payment Declined PaymentGateway -->> User: Payment Declined Message %% DB failure branch User ->> PaymentGateway: Request Payment PaymentGateway ->> Bank: Process Payment Bank -->> PaymentGateway: DB Error PaymentGateway -->> User: Payment Failed Due to Error Note over PaymentGateway: Rollback transaction if needed ```