// ... [Previous setup code: parsing webhook payload & fetching merchant details] ...

    let merchantPayoutSuccess = false
    let riderPayoutSuccess = false
    let failureNotes = ""

    // 🚀 STEP 1: EXECUTE B2B PAYOUT TO RESTAURANT TILL/PAYBILL
    // (Note: net_amount now automatically bundles delivery fees if self-delivered!)
    if (merchantPayout) {
      merchantPayoutSuccess = await triggerDarajaB2B({
        token: darajaToken,
        accountType: merchantPayout.account_type,
        accountNumber: merchantPayout.account_number,
        amount: Math.floor(settlement.net_amount), 
        reference: order.order_number
      })
    } else {
      failureNotes += "Missing merchant payout profile. "
    }

    // 🚀 STEP 2: HYBRID FORK FOR DELIVERY DISBURSEMENT
    if (order.delivery_provider === 'merchant') {
      // The merchant used their own bike. Payout is already fully handled via the B2B step above.
      console.log(`[Log] Order #${order.order_number} is self-delivered. Skipping independent rider B2C payout.`)
      riderPayoutSuccess = true
    } else {
      // Platform-fulfilled model: Trigger Daraja B2C directly to our independent rider's phone
      const riderPhone = (riderProfile?.profiles as any)?.phone
      if (riderPhone && order.delivery_fee > 0) {
        riderPayoutSuccess = await triggerDarajaB2C({
          token: darajaToken,
          phone: formatPhoneNumber(riderPhone),
          amount: Math.floor(order.delivery_fee),
          reference: order.order_number
        })
      } else {
        failureNotes += "Platform delivery selected but rider payment configuration is missing or invalid. "
      }
    }

    // 🚀 STEP 3: RECONCILE AND CLOSE THE TRANSACTION
    if (merchantPayoutSuccess && riderPayoutSuccess) {
      await supabase
        .from('settlement_transactions')
        .update({ 
          settlement_status: 'settled', 
          settled_at: new Date().toISOString() 
        })
        .eq('id', settlement.id)

      await supabase.from('orders').update({ settlement_status: 'settled' }).eq('id', order.id)
    } else {
      await supabase
        .from('settlement_transactions')
        .update({ 
          settlement_status: 'failed', 
          failure_reason: `Payout execution failed. ${failureNotes}`
        })
        .eq('id', settlement.id)
        
      await supabase.from('orders').update({ settlement_status: 'failed' }).eq('id', order.id)
    }

    // ... [Remainder of helper code stays exactly the same] ...