public function map($callback, $useKeys = true)
    {
        $keys = $this->keys();

        if ($keys instanceof Collection) {
            $keys = $keys->dump();
        }

        if ($useKeys) {
            $result = array_map($callback, $this->convertArray(clone $this), $keys);
        } else {
            $result = array_map($callback, $this->convertArray(clone $this));
        }

        // Keep keys same as origin
        return $this->bindNewInstance(array_combine($keys, $result));
    }