async handleEvent(session) {
        if (session.mode === 'setup') {
            await this.handleSetupEvent(session);
        }

        if (session.mode === 'subscription') {
            await this.handleSubscriptionEvent(session);
        }

        if (session.mode === 'payment' && session.metadata?.ghost_donation) {
            await this.handleDonationEvent(session);
        }
    }
Handles a `checkout.session.completed` event
Delegates to the appropriate handler based on the session mode and metadata
@param {import('stripe').Stripe.Checkout.Session} session