Вам нужно получить посты одного юзера
$user = User::find($id);
$posts = $user->posts; // Если есть связь от одного пользователя.
return response()->json($posts->sortByDesc('created_at')); // и вызвать сортировку коллекции.
Плюс нужно понимать различия:
1) orderBy это сортировка в QueryBuilder, в SQL грубо говоря
Прочесть тут. Поэтому в вашем случае писало что нет такого метода ибо у коллекции вызывали его.
как вариант с orderBy
$posts = Post::where('user_id', '=', $user_id)
->orderBy('created_at', 'desc')
->get();
return response()->json($posts);
2) А sortBy / sortByDesc сортируют готовую коллекцию
Почитать тут (пример выше).