public function where($field, $operator = null, $value = null, $logical = '&&')
    {
        if ($field instanceof Closure) {
            $this->scope->where .= $this->scope->where=='' ? ' (' : $logical.' (';
            call_user_func($field, $this);
            $this->scope->where .= ') ';
        } else {
            $logical = (strlen($this->scope->where) <=1 || substr($this->scope->where, -1)=='(') ? '' : $logical;
            $this->scope->where .= Parser::where($field, $operator, $value, $logical);
        }
        return $this;
    }