Olá, precisa de mais contexto. Esse middleware está sendo usado onde? Porque aí você só deu a implementação dele, mas se sua aplicação tiver usando outro middleware, esse apresentado não está sendo usado. É possível utilizar vários middleware em sequência no Laravel e acho que outro middleware está sendo executado antes desse aí, gerando o redirecionamento.
Algo que já posso adiantar:
O throw não interrompe o fluxo de execução do método, ou seja, o código continua sendo executado até que a próxima requisição é chamada ali no $next($request).