public function last(callable $callback = null, $default = null)
    {
        $items = array_reverse($this->items);

        if (is_null($callback)) {
            if (empty($items)) {
                return null;
            }

            foreach ($items as $value) {
                return $value;
            }
        }

        foreach ($items as $key => $value) {
            if (call_user_func($callback, $value, $key)) {
                return $value;
            }
        }

        return $default;
    }