Bu işi yapmanın bir çok yolu var. Ben size verdiğiniz örnekten yola çıkarak cevap yazdım. Amacınız 2. sorgu yapmamak ise (ki ben burada 2. sorgunun bir zararını görmüyorum);
$posts = Post::rightJoin('accounts', 'posts.account_id', '=', 'accounts.id')->where('accounts.username', $username)->orderBy('posts.postId', 'desc')->paginate(10);
// $posts->links()
$user = Account::with(['posts' => function($query) {
return $query->orderBy('postId','desc');
}])->where('username', $username)->first();
$page = LengthAwarePaginator::resolveCurrentPage();
$perPage = 10;
$offSet = ($page * $perPage) - $perPage;
$itemsForCurrentPage = array_slice($user->posts, $offSet, $perPage, true);
$posts = new LengthAwarePaginator($itemsForCurrentPage, count($data), $perPage, $page);
// $posts->links()