code: public function whereTranslated($column, $operator = null, $value = null, $boolean = 'and')
      {
          // Here we will make some assumptions about the operator. If only 2 values are
          // passed to the method, we will assume that the operator is an equals sign
          // and keep going. Otherwise, we'll require the operator to be passed in.
          if (func_num_args() == 2) {
              list($value, $operator) = [$operator, '='];
          } elseif ($this->invalidOperatorAndValue($operator, $value)) {
              throw new InvalidArgumentException('Illegal operator and value combination.');
          }
  
          // If the given operator is not found in the list of valid operators we will
          // assume that the developer is just short-cutting the '=' operators and
          // we will set the operators to '=' and set the values appropriately.
          if (! in_array(strtolower($operator), $this->operators, true)) {
              list($value, $operator) = [$operator, '='];
          }
  
          $fallbackColumn = $this->qualifyTranslationColumn($column, true);
          $column = $this->qualifyTranslationColumn($column);
  
          // Finally we'll check whether we need to consider fallback translations. In
          // that case we need to create a complex "ifnull" clause, otherwise we can
          // just prepend the translation alias and add the where clause normally.
          if (!$this->model->shouldFallback() || $column instanceof Closure) {
              return $this->where($column, $operator, $value, $boolean);
          }
  
          $condition = $this->compileIfNull($column, $fallbackColumn);
  
          return $this->whereRaw("$condition $operator ?", [$value], $boolean);
      }
docs: Add a translation where clause to the query.
  
  @param  string|\Closure  $column
  @param  string  $operator
  @param  mixed   $value
  @param  string  $boolean
  @return $this
  
  @throws \InvalidArgumentException