src/AbstractEngine.php
protected function performExecution(callable $callback)
    {
        $this->executionDepth++;
        
        $count = $this->executionCount;
        $this->executionCount = 0;
        
        $this->debug('BEGIN execution (depth: {depth})', [
            'depth' => $this->executionDepth
        ]);
        
        try {
            $result = $callback();
        } finally {
            $this->debug('END execution (depth: {depth}), {count} commands executed', [
                'depth' => $this->executionDepth,
                'count' => $this->executionCount
            ]);
            
            $this->executionCount = $count;
            $this->executionDepth--;
        }
        
        $this->syncExecutions();
        
        return $result;
    }
protected function performExecution(callable $callback)
    {
        $this->executionDepth++;
        
        $count = $this->executionCount;
        $this->executionCount = 0;
        
        $this->debug('BEGIN execution (depth: {depth})', [
            'depth' => $this->executionDepth
        ]);
        
        try {
            $result = $callback();
        } finally {
            $this->debug('END execution (depth: {depth}), {count} commands executed', [
                'depth' => $this->executionDepth,
                'count' => $this->executionCount
            ]);
            
            $this->executionCount = $count;
            $this->executionDepth--;
        }
        
        $this->syncExecutions();
        
        return $result;
    }
Triggers the given callback, can be extended in order to wrap interceptors around execution of commands.

Be sure to call the parent method when you override this method!

Keep in mind that nested executions are allowed and need to be dealt with when implementing
features such as transaction handling.

@param callable $callback This callback triggers the actual execution of commands!
@return mixed Result of an execution, not relevant when only pushing commands.