public static function wrap($value): self
    {
        switch (true) {
            case $value instanceof self:
                return new static($value);

            case $value instanceof BaseCollection:
                return new static($value);

            default:
                return new static(Arr::wrap($value));
        }
    }