No Laravel é bem fácil.
Utilize a função collect para criar uma coleção de dados, exemplo:
$users = collect([]); // função collect
if($request->system=='1') {
$systems = User::where([
[ 'system', 'like', '%'.'1'.'%' ]
])->get();
foreach( $systems as $system) {
$users->push($system); // adicionando na coleção
}
}
Se não quiser a função collect (que é classe de coleção do Laravel) e continuar array faça no foreach assim:
$users = [];
if($request->system=='1') {
$systems = User::where([
[ 'system', 'like', '%'.'1'.'%' ]
])->get();
foreach( $systems as $system) {
array_push($users, $system); adicionando no array
}
}
Observação: exemplo de um if tem que colocar todos o mesma lógica de código
https://www.php.net/manual/en/function.array-push.php
Eu faria talvez bem melhor que tudo isso utilizando union unido esses resultados via Eloquent SQL trazendo apenas um resultado com todas as informações?
public function type_user(Request $request)
{
$users = User::query();
if($request->system=='1'){
$systems = User::where([
[ 'system', 'like', '%'.'1'.'%' ]
]);
$users = $users->union($systems);
}
if($request->teacher=='1'){
$teachers = User::where([
[ 'teacher', 'like', '%'.'1'.'%' ]
]);
$users = $users->union($teachers);
}
if($request->student=='1'){
$students = User::where([
[ 'student', 'like', '%'.'1'.'%' ]
]);
$users = $users->union($students);
}
if($request->pacient=='1'){
$pacients = User::where([
[ 'pacient', 'like', '%'.'1'.'%' ]
]);
$users = $users->union($pacients);
}
return view('users/show',['users' => $users->get(), 'search' => $search]);
}
Um fator importante nunca use type_user utilize typeUser que é a nomenclatura base utilizada no Laravel é um padrão (não é obrigatório)!