public function first(callable $filter = null, array $args = [], $default = null)
    {
        // Use $this if no filter provided
        $filtered = ($filter === null)
            ? $this
            : $this->filter($filter, $args)
        ;

        // Return first value or default if filtered collection is empty
        return empty($filtered) ? $default : reset($filtered);
    }