@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.