Hi @nilquera,
Welcome to the community
With ERC20 tokens, token holders need to approve an allowance before they can be used in another contract (see: Example on how to use ERC20 token in another contract)
There is a discussion on a permit
function but this would only be for tokens that were created with this functionality: Add ERC20 permit() function
Unfortunately, you will need token holders to perform two transactions.