すみません、スコープ作った場合でも、

public function scopeSearchName($query, $name){
 if ($name !== null) {
  return $query->where('name', $name);
 }
}

みたいにIFで判定するのは仕方ないんですかね?

また、検索項目が複数ある場合、

User::searhName($request->query('name'))->searhType($request->query('type'))->searhBirth($request->query('birth'))

みたいにどんどん長くなるのも仕方ないんですかね?