How can i setApproveForAll my contract?

I have two seapare contracts.

  1. ERC721A NFT mint contract
  2. NFT Stake contract

I need to approve both user and contract for use my NFT mint contract's safeTransferFrom method but i cant understand how to use setApprovalForAll method... How should i call it and i want this: When a user tried to stake my nft my website will look is this user approved or not. If he is approved, then he can able to stake him nfts. But he is not, then he need to approve himself by calling setApprovalForAll method.

But when a user call setApprovalForAll method how is he call it?
I mean,


What my user need to write there?
Own address or my contracts address?

And when i tried to approve my stake contract
what should i write there when i tried to approve my staking contract?

you need to input your contract address and true value.