Пытаюсь реализовать проверку при выводе 50 записей, с проверкой на наличие записи в другой таблице по авторизованному пользователю. Но если пользователь не авторизован, выводит все записи как надо по критериям. Если пользователь авторизован, записи не выводит вообще. Если ставлю leftJoin, выводит все как надо, но только если юзер авторизован, добавляет еще записи которые есть в избранном, но этого не должно быть.
Вот код
DB::table('book')
->leftJoin('favorite', 'book.id', '=', 'favorite.book_id')
->select('book.*', 'favorite.id as favorite_checked')
->where([
['book.country', '=', $country->id],
['book.city', '=', 0],
['book.approve', '=', 1],
])
->where(function($q)
{
if( Auth::check() ) $q->where('favorite.user_id', '=', Auth::user()?->id);
})
->paginate(50);
Нужна исключительно переменная favorite_checked - которая на фронтеде выводит, есть ли в закладках книга или нет.