I needed to make sure that Tournament_teams and Tournament_matches were indeed Eloquent models.
Looking at the documentation for updateOrCreate found at https://laravel.com/docs/7.x/eloquent#other-creation-methods, it looks like you need a second array containing the property and value to be updated. So, for example, if your intent is to update the league_name for a matching tournament_id, then it should be done like this:
$tournament = Tournament::updateOrCreate(
['tournament_id' => $tournament_id],
['league_name' => $full_name]
);
Tournament_teams::updateOrCreate(
[ 'tournaments_id' => $tournament->id ],
[
'team' => $team->name,
'slug' => $team->slug,
'logo' => $team->image_url,
'team_id' => $team->id,
'match_id' => $team->match_id ?? null
]
);
The link to the documentation also explains why your values are being saved (created) and not updated.