Using GNU awk in paragraph mode and sort the array's keysvalues in string mode then print:
awk -v RS= '{ seen[$0]=1seen[NR]=$0 }
END { PROCINFO["sorted_in"]="@ind_str_asc";PROCINFO["sorted_in"]="@val_str_asc";
for (block in seen) {print sep block;seen[block]; sep=ORS}
}' infile