title: Why rulesToQuery method aggregates all query chuck with $or property when the rule is not inverted?
body: <p>My understanding is when we check action on the subject of ability in a positive scenario the conditions given should be validated with <code>and</code> condition.</p>
  <p><em><strong>Example:</strong></em> AI Moderator 'can' 'update' 'Article' when 'publised==true and tags in [&quot;AI&quot;]'</p>
  <p><em><strong>In Code:</strong></em></p>
  <pre><code>const moderatorPermissions = [
          { action: 'update', subject: 'Article', conditions: { publised: true, tags: [&quot;AI&quot;] } }
  ];
  
  const moderatorAbility = createAbility(moderatorPermissions); // creatAbility function returns ability instance of casl taking user's permissions array
  
  function ruleToSequelize(rule: any) {
      return rule.inverted ? { $not: rule.conditions } : rule.conditions;
  }
  
  const query = rulesToQuery(moderatorAbility, &quot;update&quot;, &quot;Article&quot;, ruleToSequelize);
  
  console.log(query); // output: { '$or': [ { publised: true, tags: [&quot;AI&quot;] } ] }
  
  </code></pre>
  <p>My expectation is the output of the <code>query</code> should print like this <code>{ '$and': [ { publised: true, tags: [&quot;AI&quot;] } ] }</code></p>
  <p>Can anyone explain why <code>$or</code> property getting created even the condition is not inverted.</p>
  <p>Thanks in advance :)</p>