title: Laravel DB::transaction exception PDO There is no active transaction
body: <p>i have the following code:</p>
  
  <pre><code>$new_models = DB::transaction(function () use ($supplier, $address, $addressDetail) {            
          $new_supplier = $this-&gt;setNewSupplier($supplier);
          $new_address = $this-&gt;setNewAddress($address);           
          $new_addressDetail = $this-&gt;setNewAddressDetail($addressDetail,$new_address-&gt;id);           
          $this-&gt;syncSupplierAddress($new_supplier-&gt;id,$new_address-&gt;id);
          $this-&gt;updateControlAp($new_supplier-&gt;supplier_id);   
          return [$new_supplier, $new_address, $new_addressDetail];
      });
  </code></pre>
  
  <p>The set methods are basically creating the models object with save() at the end;
  Now this works perfectly fine if 2nd...nth fails BUT NOT if the first one fails.
  If <code>$this-&gt;setNewSupplier($supplier);</code>
  fails than i get</p>
  
  <pre><code>"PDOException in Connection.php line 541:
  There is no active transaction"
  </code></pre>
  
  <p>Am i doing something wrong here ? Also if i comment <code>$this-&gt;rollBack();</code> from the catch in vendor Connection.php it actually gives me the SQL error. Important part here is that this isn't working only if first save() fails</p>
  
  <p>PS. I am using PostgreSQL not MySQL but i don't think its related</p>