/**
  * Seed Admin User with Roles
  */
 public function run()
 {
     $admin = User::firstOrCreate(['name' => "admin", 'email' => '*****@*****.**', 'password' => Hash::make('admin123'), 'organization' => '', 'status' => 'true']);
     $adminRole = Role::select('id')->whereName(config('nrgi.roles.superadmin.name'))->first();
     $admin->roles()->sync([$adminRole->id]);
     $researcher = User::firstOrCreate(['name' => "researcher", 'email' => '*****@*****.**', 'password' => Hash::make('researcher123'), 'organization' => '', 'status' => 'true']);
     $researcherRole = Role::select('id')->whereName(config('nrgi.roles.researcher.name'))->first();
     $researcher->roles()->sync([$researcherRole->id]);
     $permission_name = ['add-contract', 'edit-contract', 'edit-text', 'complete-text', 'complete-metadata', 'add-annotation', 'edit-annotation', 'complete-annotation'];
     $permissions = Permission::whereIn('name', $permission_name)->get();
     $researcherRole->perms()->sync($permissions);
 }
 /**
  * Get country all users
  *
  * @return Collection/null
  */
 public function getUsersWithCountryContract()
 {
     $query = $this->user->select('name', 'id');
     $countries = $this->auth->user()->country;
     $from = "users";
     $from .= ",json_array_elements(users.country) r";
     if (!is_null($countries)) {
         $query->whereRaw("trim(both '\"' from r::text) in (?)", $countries);
     }
     $query->from($this->db->raw($from));
     $list = [];
     foreach ($query->get() as $v) {
         $list[$v->id] = $v->name;
     }
     return $list;
 }
 /**
  * Create a new user instance after a valid registration.
  *
  * @param  array  $data
  * @return User
  */
 public function create(array $data)
 {
     return User::create(['name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password'])]);
 }