public function detect()
    {
        $extensions = [];
        $packages = $this->getComposerLockData();

        // Loop each path to check if there orchestra.json available within
        // the paths. We would only treat packages that include orchestra.json
        // as an Orchestra Platform extension.
        foreach ($this->paths as $key => $path) {
            $manifests = $this->files->glob($this->resolveExtensionPath("{$path}/orchestra.json"));

            // glob() method might return false if there an errors, convert
            // the result to an array.
            \is_array($manifests) || $manifests = [];

            foreach ($manifests as $manifest) {
                $name = \is_numeric($key)
                            ? $this->guessExtensionNameFromManifest($manifest, $path)
                            : $key;

                if (! \is_null($name)) {
                    $lockContent = $packages->firstWhere('name', $name);
                    $extensions[$name] = $this->getManifestContents($manifest, $lockContent);
                }
            }
        }

        return new Collection($extensions);
    }