GROUP BY ごとに COUNT するときは生のSQLで SELECT文の中身を書いて COUNT(column_name) を指定しないといけない。
コード
use App\Models\Post;
use Illuminate\Support\Facades\DB;
// 略
// ユーザー毎の記事の件数(1件以上)
$user_posts_count = Post::select(DB::raw('user_id, COUNT(user_id) AS user_id_count'))
->groupBy('user_id')
->having('user_id_count', '>=', 1)
->get();