Laravel Eloquent ORM条件关系

I can't seem to figure this out.

I have 3 tables: User, Experience, Level (Simplified)

User: {id, string:name}
Experience: {id, user_id, int:amount}
Level: {id, string:level, int:experience}

//User class
public function experiences(){
    return $this->hasMany('Experience', 'user_id');
}

There are no database relations between Experience and Level.

How do I get the level, with something like this:

public function level(){
    return $this->experiences()->has('Level.experience', '<', $this->experiences()->sum('amount'))->first();
}

I know how I could write it as a join, but I'd rather have Eloquent do it for me.

Example data:

User: {1, 'userOne'}
Experience: {1, 1, 10}
Level: {1, 'LevelOne', 5}

This user will then have Level "LevelOne" - Because the sum of Experience is 10, and above Level_id 1 with minimum experience 5.

So what I have done, to solve this problem.

My User model:

    public static function getLevel($experience){
    $level = Level::where('experience', '<=', $experience)->first();
    return $level;
    }

A view:

{{Auth::user()->getLevel(Auth::user()->experiences->sum('amount'))->level}}

That is the best 'hack' I could come up with :)