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;
    }