I think the issue is with the assigning the password. Since $data is having an array of values, you can add password to array like below.
$data = $request->validate([
'nationalCode' => ['required', 'regex:/^[0-9]{10}$/', 'unique:users,nationalCode'],
'username' => "required|min:3|max:40|unique:users,username",
'email' => ['regex:/[^@]+@[^\.]+\..+/', "unique:users,email"],
'mobile' => ['required','regex:/09(1[0-9]|3[1-9]|2[1-9])-?[0-9]{3}-?[0-9]{4}/',],
'firstName' => 'required|min:3|max:40',
'lastName' => 'required|min:3|max:40',
'province' => 'required',
'role' => 2,
'isActive' => 1,
]);
// generate password automatically
$data['password'] = bcrypt('password_star');
User::create($data);
alert()->success('مدبر مورد نظر با موفقیت ایجاد شد', 'موفقیت آمیز');
return redirect(route('admin.user.index'));