Call a smart contract function on a different blockchain

What are the current options we have if we want a smart contract to be able to call a function of another contract that is on another blockchain?

I'm developing a Dapp that supports multiple blockchains, and I can access all of them from the Dapp, but for security it's better to also add some cross-chain checks (which would be read-only) within a contract.

you can't call a function of contract A on Chain A from contract B on chain B

You can't state that definitively as there may now be solutions out there that make it possible. e.g. OpenZeppelin have introduced CrossChainEnabled in their latest release.

Maybe we could use this between Ethereum and Polygon:

It looks like Axelar enables cross-chain function calling (and asset transfer etc.).
What do you guys think of it?
What are the risks of using it?
What other options are there?