@MeteOguzhan;
Şu sorgu işinizi görecektir.
ister raw olarak kullanın ister query builder ile,

$query = "SELECT *, COUNT(*) as total FROM user GROUP BY under_reference HAVING under_reference IS NOT NULL order by total DESC";
--edit:

Yukarda under_reference is not null u kullanmamın sebebi, benim db yapımdaki userların eğer referansı yok ise under_reference columnu null oluyor, eğer siz böyle değilde direk 0 veriyorsanız under_reference kolonuna;
bu durumda HAVING under_reference > 0 demeniz lazım ki, sadece referans ile gelen kayitları alabilesiniz.


--edit 2:

sorgu sonuna (DESC den sonra) *LIMIT 5* diyerek sadece 5 kaydı alabilirsiniz


--edit 3:
Bu sorguda en cok referans sahibi userlar donmuyor, sadece id leri under_reference altinda donuyor, dolayısı ile siz appUser modelinize relation tanımlayıp, yukardaki sorgudan donen sonucların sahibi olan userlari cekmeniz lazim.
Ornek:

$records = AppUser::getHighestReferences();

foreach($records as $record) {
    echo    "{$record->ownerReference->full_name} <br/>";
}
bu sadece ornekti gerisi size kalmis bir olay.