For anyone having this question in the future, I have created an alternative TeamController and copied the show method from the one used by Jetstream.
Then I changed the functionality slightly so instead of accepting a teamId it now looks for the user in the request and finds the user's currentTeam to then render its settings page.
public function show(Request $request)
{
$user = $request->user();
$team = $user->currentTeam;
if (!$team) {
return inertia()->render('Dashboard', [
'error' => 'You are not a member of any workspace.'
]);
}
Gate::authorize('view', $team);
return Jetstream::inertia()->render($request, 'Teams/Show', [
'team' => $team->load('owner', 'users', 'teamInvitations'),
'availableRoles' => array_values(Jetstream::$roles),
'availablePermissions' => Jetstream::$permissions,
'defaultPermissions' => Jetstream::$defaultPermissions,
'permissions' => [
'canAddTeamMembers' => Gate::check('addTeamMember', $team),
'canDeleteTeam' => Gate::check('delete', $team),
'canRemoveTeamMembers' => Gate::check('removeTeamMember', $team),
'canUpdateTeam' => Gate::check('update', $team),
'canUpdateTeamMembers' => Gate::check('updateTeamMember', $team),
],
]);
}