Q:

Laravel , sessions just work for 1 online user

I'm new in laravel
I coded a script that many users may work with
but the problem that I have is this :
when a user like "Helen" signs in she can see her profile
but if next another user like "Maria" logs on , Marias panel will be shown for both of them
I think it means just one session can be active at the same time and the value of session will be for the latest user
and the older users session doesn't expire just the value in the session will be changed , thus she identifies as another user and can see that users profile, and also when a user logs out , because of close of the session , all users will be signed out.
here is my simple code :
public function Login(){
        $this->Token();
        $pack=Input::all();
        try {
           $result=DB::table('user')->where('Email','=',$pack['email'])->get();
            if (Hash::check($pack['password'], $result[0]->Password)){
                session(['there' => $result['0']->Email]);
                return redirect('dashboard');
            }
            return redirect('dashboard')->with('does','wrong password');
        }catch(Exception $e){
            return redirect('dashboard')->with('does',.$e);
        }
}

public function UserType() {
        if(!session('there'))
            return "Not Logged";
        else {
            $result = DB::table('user')->where('Email', '=', session('there'))->get();

        if($result!=null)
            return "User";
}

public function ShowDashboard(){
        if($this->UserType()=="Not Logged")
        else
            return view('pages/dashboard');
}

A:

I am not sure why you are session() to manage user logins... Also, they depend a lot on situations where users are login from the same computer, same browser... cookies... etc etc... and maybe that's why you might be getting 2 different session values at the same time...
In any case.. please try and prefer using Laravel's predefined functions of Auth to handle your login/logout procedures.
public function Login()
{
  // What does this do? Check for a CSRF token? If yes, then
  // please understand then Laravel automatically checks
  // for the CSRF token on POST/PUT requests and therefore
  // there is no special need to use the below function...
  $this->Token();

  $pack = request()->only(['email', 'password']);

  // I don't really feel try catch is required here... but completely your choice...
  try {
    if(auth()->attempt($pack)) {
      return redirect('dashboard')
    }
    return redirect->back()->with('does', 'wrong password');
  } catch(Exception $e) {
    return redirect->back()->with('does', $e);
  }
}

public function ShowDashboard()
{
  // You can remove this if/else by adding the 'auth' middleware
  // to this route
  if(!auth()->check())
    return view('pages.dashboard');
  else
    return redirect(route('login'));
}

I found a lot of problems in your above code... 

Please use camelCase for naming functions... (I haven't changed the naming in my code above because I don't really know what rules you are following at your workplace or idk...)
Please don't return strings for a simple true/false situation.
Please try and use Models whenever possible. The raw DB commands are required for very complex and extensive queries

