1 - من پاک نمیکنم ولی مشکلی هم نداری پاک خاستی بکنی
2 - بله , اگر کاربر لاگین شده تایید نکرده بود باید به صفحه تایید ریدایرکت بشه پس از لاگین
نمیدونم چرا تو خط اول میدلورت نوشتی که اگه لاگین نبود ریدایرکت بشه به صفحه اول معنی نمیده اگه میخای این میدلور رو روی همه رات ها بندازی
اینجوری کاربری که لاگین نیست فقط میتونه صفحه اول سایت رو ببینه


public function handle($request, Closure $next)
{
if( Auth::user() && Auth::user()->status != 1 && !in_array( $request->route()->getName() , ['check-code'] ) ){
return redirect('check-code');
}

return $next($request);
}




میگیم اگه یوزر لاگین بود و استاتوسش 1 نبود ریدایرکتش کن به صفحه تایید کد وگرنه اگه لاگین نبود یا لاگین بود و تایید کرده بود بزار به کارش ادامه بده
شرط سوم یعنی

in_array( $request->route()->getName() , ['check-code'] )


برای اینه که ما نمیخایم این تیکه کد توی خود صفحه تایید اجرا بشه دیگه
از اونجایی که کد توی میدلور قبل از کد های کنترلر و ویو اجرا میشه , شما میخای بری تایید کنی اکانتت رو ولی قبل از اینکه فرصت تایید رو داشته باشی این کد دوباره ریدایرکتت میکنه به همون صفحه تایید و کاربر رو توی یک حلقه بدون انتهای ریدایرکت میفته
باید کاری کنی که این شرط روی هیچکدوم از راوت های تایید کد اجرا نشه