If you need to capture authorized amounts multiple times, you can use Stripe's "partial capture" feature. This feature allows you to capture a portion of the authorized amount, rather than the entire amount.
To use partial capture in Magento 2, you can create an invoice for the authorized amount, but only capture the amount you need at the time. For example, if you want to capture $100 for the first product, you would create an invoice for $100 and capture that amount.
To capture the remaining amount later, you would create another invoice for the remaining amount and capture that amount. Here's an example of how you could do this using Magento 2's built-in Stripe payment method:
Log in to your Magento 2 admin panel and navigate to Stores > Configuration > Sales > Payment Methods > Stripe.
In the "Payment from Applicable Countries" section, select the countries where you want to allow Stripe payments.
In the "API Keys" section, enter your Stripe API keys.
In the "Advanced Options" section, set the "Payment Action" to "Authorize Only". This will allow you to authorize the full amount of the order, but capture it in parts.
Save your changes.
When an order is placed, the full amount will be authorized, but not captured. To capture a portion of the authorized amount, create an invoice for that amount and capture it using the "Capture" button in the Magento admin panel.
To capture the remaining amount, create another invoice for the remaining amount and capture it in the same way.
By using partial capture, you can capture authorized amounts multiple times without having to refund the remaining amount. Just be sure to create an invoice for the amount you want to capture and use the "Capture" button to capture that amount.