Если вы определите столбец как schedule->day
, MySQL предполагает, что это массив целых чисел. В вашем случае это массив объектов, поэтому вам нужно нацелиться на родительский массив и добавить имя свойства, которое вы ищете во втором аргументе.
Примерно так:
$courses = Course::whereJsonContains('schedule', ['day' => 1])->get();