Этот запрос неверен. ->find()
выполняет запрос, как и ->first()
, и все выбирается по умолчанию, поэтому ->select('*')
не требуется.
$teacher = DB::table('teachers')->find($id);
Должно быть достаточно. Но вы уже используете правильный
$teacher = Teacher::find($id);
Так что нет особого смысла в использовании подхода DB::table()
.