Ваш запрос выбирает все столбцы: select * from questions join categories ...
В результате столбцы categories
переопределяют столбцы questions
с одинаковыми именами.
Необходимо ограничить выбранныестолбцы:
$questions = Question::with('option')
->join('categories', function($join) use ($category) {
$join->on('categories.id','=','questions.category_id');
$join->where('categories.title', '=', $category);
})
->inRandomOrder(5)
->get(['questions.*']);
Или используйте whereHas()
:
$questions = Question::with('option')
->whereHas('categories', function($query) use($category) {
$query->where('title', '=', $category);
})
->inRandomOrder(5)
->get();