Here is essencially what I used to do.
I charge my buyers for the miner fee. So if you are buying $100 worth of BTC, and the miner fee is $10, I treat it as a $90 trade.
Some of my buyers trusted me and did not require fast confirmation. They would tell me to take my time and go easy on miner fees. So long as they can see the trade in the mempool, they were happy. So I would charge them $5 for miner fee, instead of $10. They get more coin that way.
And if the next buyer also wants cheaper miner fee, I would batch them at with RBF at 0.2 sat/VB more than the previous trade.
And if the next buyer wants fast confirm, I charge him the full $10 fee, and Bach him with the other two, at a fee high enough to confirm on next block.
This way, they pay less in fees, and I often ended up paying slightly less in fees than I would charge them.
Or also, I would often get two buyers one behind the other. So that they both want fat confirm, but I'm able to batch them if the first one hasn't confirmed yet.
Or during high fee periods, I could have as many as 10 trades who were willing to wait a day for confirm. So I would tell them the tx will confirm at noon every day, and they only get charged half fee.
It all worked out pretty good. All this was automated with my software on HodlHodl. And I always increased fees by 0.2 sat/vB with each spend I added to the batch.