@Nonesuch Yes, if you want to use an Eloquent relationship to the league_player table, then you would need to do so with a corresponding LeaguePlayer model.
If you go with the first approach of a single pivot and the relationship defined in my first post, you could get all teams and their players for a given league with a query like this:
$teams = League::with('teams')
->where('id', 123)
->get();
NOTE: the results will only include ID references to your team and its players. You'll have to isolate those IDs and run subsequent queries to get the necessary detail for the teams and players.
If you use multiple pivot tables to define the league/team and team/player relationships, then you may be able to define your relationships in such a way that you can get the necessary detail within a single query, but this whole matter is complicated by the fact that you're trying to treat teams as unique entities when in reality, each implementation of a team within a league is effectively a new entity.
Personally, I would take that approach where teams are instantiated within leagues. So, by that I mean Team 1 in League 1 gets a record with ID 123 and Team 1 in League 2 is effectively a different team entity with ID 124. Same name, but a different team as far as the data is concerned. This obviously introduces the need to somehow implement your teams within leagues, but I think it's a worthwhile trade when you consider how this simplifies your data model and that, for all intents and purposes, each league/team combo truly is a unique team with a unique mix of players.