protected function verifyCollection($collection)
    {
        if ($collection instanceof ControllerProviderInterface) {
            $connectedControllers = $collection->connect($this->app);

            if (!$connectedControllers instanceof ControllerCollection) {
                throw new LogicException(
                    sprintf(
                        'The method "%s::connect" must return a "ControllerCollection" instance. Got: "%s"',
                        get_class($collection),
                        is_object($connectedControllers) ? get_class($connectedControllers) : gettype($connectedControllers)
                    )
                );
            }

            $collection = $connectedControllers;
        } elseif (!$collection instanceof ControllerCollection) {
            throw new LogicException(
                'The "mount" method takes either a "ControllerCollection" or a "ControllerProviderInterface" instance.'
            );
        }

        return $collection;
    }