@startuml
actor "User" as U
participant "SmartTools Website" as W
participant "Payment Gateway" as P
participant "Registry Backend" as B

U -> W : Navigates to "Donate/Contribute" page
W --> U : Displays contribution options (one-time, recurring, tiers)
U -> W : Selects contribution option
W -> W : Validates input (amount, type)
alt Valid Input
    W -> P : Initiates payment (e.g., Stripe, PayPal)
    P --> U : Prompts for payment details
    U -> P : Enters payment details
    P --> W : Payment confirmation/failure
    alt Payment Success
        W -> B : Records contribution
        B --> W : Confirmation
        W --> U : Displays "Thank You" message & receipt
    else Payment Failure
        W --> U : Displays error message & retry option
    end
else Invalid Input
    W --> U : Displays validation error
end

@enduml