В настоящее время пользователь является основным субъектом, и поэтому сортировка постов будет среди постов ЭТОГО ПОЛЬЗОВАТЕЛЯ, а не глобально по всем постам. Я предполагаю, что вы хотите сделать глобальную сортировку, то есть сообщения должны быть отсортированы по дате
Попробуйте добавить новое отношение в классе пользователя
class User extends Model {
public function rpost() {
return $this->belongsTo(\where\ever\posts::class, 'user_id', 'id');
//inverse mapping from user --> posts table
//assuming posts table is using user_id column to track the ownership
//and user table has id as it's primary key
}
}
Затем измените код
User::with('rpost')
->select('posts.title'.'posts.id', 'users.name',
\DB::raw('(SELECT posts.date FROM posts WHERE user.id = posts.user_id ) as sort'))
->where('last_name', 'like', $search['lastname'] . '%')
->where('first_name', 'like', $search['firstname'] . '%')
->where('email', 'like', '%' . $search['email'] . '%')
->whereHas('posts', function ($query) use ($search) {
$query->where('reference', 'like', $search['reference'] . '%');
})
->orderBy('sort')
->paginate(15);