I'm working on an mlm site, And this is the code I have to get referrals of a referral down to the third generation. As for the requirements I must not use eloquent relationships. Here's my code;
public function matrix()
{      
    $referrals = DB::table('users')->where('referred_by', Auth::user()->referral_id)->get();
    if (!isset($referrals))
    {
        return view('matrix');
    }
    elseif(isset($referrals))
    {
        $referrals2gen = DB::table('users')->where('referred_by', $referrals[0]->referral_id)->get();
        if (!isset($referrals2gen)) 
        {
            return view('matrix2', ['referrals' => $referrals]);
        }
        elseif(isset($referrals2gen))
        {
            $referrals3gen = DB::table('users')->where('referred_by', $referrals2gen[0]->referral_id)->get();
            if (!isset($referrals3gen[0]))
            {
                return view('matrix3', ['referrals' => $referrals, 'referrals2gen' => $referrals2gen]);
            }
            elseif(isset($referrals3gen[0]))
            {
                return view('matrix4', ['referrals' => $referrals, 'referrals2gen' => $referrals2gen, 'referrals3gen' => $referrals3gen]);
            }
        }
    }
}  
Firstly, the code does not follow the Don't Repeat Yourself Principle. Secondly, it does not give all the referrals of my direct referrals. Any help I can get would be appreciated.
 
    