Контекстная агности c способ объединения результатов двух совместимых с объединением запросов (таких как ваш) будет выглядеть так:
$result = transactions::where('plan', 'LIKE', $user->id)->orderBy('updated_at', 'DESC')
->union(
transactions::where('user', 'LIKE', $user->id)
->orderBy('updated_at', 'DESC')
)
->get();
Это, конечно, означает, что результаты упорядочено по плану, затем по пользователю. Вы можете отсортировать их по updated_at
глобально, используя приведенную ниже функцию для результата:
$result = $result->sortBy('updated_at', 'DESC');
Также есть способ сделать это на уровне запроса, но я не вижу большой пользы, поскольку вы получаете в любом случае все данные.
Вышеупомянутый запрос должен быть функционально эквивалентен:
$result = transactions::orWhere('plan', 'LIKE', $user->id)
->orWhere('user', 'LIKE', $user->id)
->orderBy('updated_at', 'DESC')
->get();
Результат будут те же, но в другом порядке, чем объединение.