Подскажите, как правильно избавиться от повторений вот такого вот кода в каждой функции могу контроллера?
public function home(Request $request)
{
$agent = new Agent();
$device = $agent->device();
$viewer = New Viewers();
$ip = $request->ip();
$data = Location::get($ip);
$viewer->request_uri = $request->getRequestUri();
$viewer->ip_address = $ip;
$viewer->country = $data->countryName;
$viewer->city = $data->cityName;
if($agent->isMobile()){
$phone = $agent->isPhone();
$viewer->device = $agent->platform();
} else if($agent->isTablet()) {
$viewer->device = $agent->device();
} else if($agent->isRobot()) {
$robot = $agent->robot();
$viewer->device = $robot;
} else {
$platform = $agent->platform();
$viewer->device = $platform;
}
$viewer->save();
}
Вот эта часть будет повторяться в каждой функции - а это уже слишком большое загромождение кода.