When using Enhanced Search for Jira Cloud, it's worth establishing some good practices from the outset.
Ensure JQL keywords are synced. It can appear to users that their JQL queries don't work, when in actual fact they just haven't been synced.
As there are timeout limitations in the cloud, you should endeavour to reduce the complexity of queries and make them as small as possible to avoid these.
Use the insert function dialog where possible to build queries as this helps get the correct syntax.
For ScriptRunner queries copied from online posts, caution is advised as these may be related to ScriptRunner for server. Many of these have a different syntax and may show up as an invalid query.
Ensure filters are synced when powering dashboards, or Agile boards, so that issues returned by a JQL query are up to date.
Avoid tweaking permissions for the Add On User as this can result in many functions not working as expected. This is particularly the case in relation to restricting permissions.
Use IDs rather than names in ES functions, where possible.
You are strongly advised to understand the differences in functions between server and cloud and refer to the documentation. Many features differ, and some functions/ keywords will exist but have a different name, such as the hasLinks keyword for example which is numberOfLinks in server.