public function ordered(callable $comparator = null) : Collection
    {
        return $this->pipe(
            self::predicate(
                function (array $values) use ($comparator) : bool {
                    $sorted = $values;

                    $comparator !== null
                        ? usort($values, $comparator)
                        : sort($values);

                    return $sorted === $values;
                },
                'not ordered'
            )
        );
    }