Differerences between user paying gas transfer and contract paying gas for transfer

I already asked this in Moralis . I wonder if it’s only in the contract where this takes place or in moralis code. When you do a transfer . regular moralis transfer , who pays the gas? The user right ?

for a simple contract interaction, when a user calls transfer function for a smart contract, then the user will pay the gas fees for that smart contract interaction.