title: Eloquent whereNotExists not generating correctly
body: <p>I have the following SQL which pulls a root node from a nested table (relative to the user, i.e. this highest node to which a user is assigned),       </p>
  
  <pre><code>SELECT 
     child_domain.*, child_subscription.user_id 
  FROM
     domains AS child_domain 
  JOIN subscriptions 
     AS child_subscription 
     ON child_subscription.domain_id = child_domain.id
  WHERE NOT EXISTS
     (
        SELECT 1 
           FROM   domains AS parent_domain 
           JOIN subscriptions 
              AS parent_subscription
              ON parent_subscription.domain_id = parent_domain.id 
           WHERE  
              parent_domain.start &lt; child_domain.start 
           AND
              parent_domain.end &gt; child_domain.end 
           AND 
              parent_subscription.user_id = child_subscription.user_id
      );
  </code></pre>
  
  <p>The above returns the root node of nested rows, the tables look something like this,</p>
  
  <pre><code>-----------   -----------------   ---------
  | DOMAINS |   | SUBSCRIPTIONS |   | USERS |
  -----------   -----------------   ---------
  | id      |   | user_id       |   | id    |
  | start   |   | domains_id    |   | name  |
  | end     |   -----------------   ---------
  -----------
  </code></pre>
  
  <p>However, I'm having trouble converting it to Eloquent. The problems appears to be in the subquery (I've tried <code>whereDoesntHave</code> and <code>whereNotExists</code>, but neither work).</p>
  
  <pre><code>DB::table('domains as child_domain')
     -&gt;join('subscriptions as child_subscription','child_subscription.domain_id','child_domain.id')
     -&gt;whereNotExists('domains as parent_domain',function($query){
        $query
           -&gt;join('subscriptions as parent_subscription','parent_subscription.domain_id','parent_domain.id')
           -&gt;where('parent_domain.end','&gt;','parent_domain.end')
           -&gt;where('parent_domain.start'.'&lt;','parent_domain.start')
           -&gt;where('parent_subscription.user_id', 'child_subscription.user_id')-&gt;get();
  });
  </code></pre>
  
  <p>The code above, when I output the <code>toSql()</code> shows,</p>
  
  <pre><code>select * from `domains` as `child_domain` inner join `subscriptions` as `child_subscription` on `child_subscription`.`domain_id` = `child_domain`.`id` where not exists (select *)
  </code></pre>
  
  <p>Any help appreciated.</p>