protected function validateClasses($classes)
    {
        if (!is_array($classes)) {
            $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3)[2]['function'];

            throw new InvalidArgumentException("Breadcrumbs::{$trace}() only accepts strings or arrays.");
        }

        foreach ($classes as $key => $class) {
            if (!is_string($class)) {
                $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3)[2]['function'];

                throw new InvalidArgumentException(
                    "Breadcrumbs::{$trace}() was passed an array, but at least one of the values " .
                    "was not a string: \$classes['{$key}'] = " . print_r($class, true)
                );
            }
        }
    }