OP, I don’t understand anything about programming, but I have been using ETH and smart contracts for a long time.
The user will have to pay commissions anyway, otherwise he will not be able to interact with the smart contract.
Perhaps there is an easier option, write another smart contract that will return commissions to users once a week.