public function where($key, $operator, $value = null)
    {
        if (func_num_args() == 2) {
            $value = $operator;

            $operator = '=';
        }

        $countries = method_exists($this, 'where'.ucfirst($key))
            ? $this->{'where'.ucfirst($key)}($value)
            : parent::where($key, $operator, $value);

        return $this->hydrateDefaultElements($countries);
    }
public function where($key, $operator, $value = null)
    {
        if (func_num_args() == 2) {
            $value = $operator;

            $operator = '=';
        }

        $countries = method_exists($this, 'where'.ucfirst($key))
            ? $this->{'where'.ucfirst($key)}($value)
            : parent::where($key, $operator, $value);

        return $this->hydrateDefaultElements($countries);
    }
public function where ( $ key , $ operator , $ value = null ) { if ( func_num_args ( ) == 2 ) { $ value = $ operator ; $ operator = '=' ; } $ countries = method_exists ( $ this , 'where' . ucfirst ( $ key ) ) ? $ this -> { 'where' . ucfirst ( $ key ) } ( $ value ) : parent :: where ( $ key , $ operator , $ value ) ; return $ this -> hydrateDefaultElements ( $ countries ) ; }
Where on steroids.

@param string $key
@param mixed $operator
@param null $value
@return static
Where on steroids .