get(); if (($x=$result->count()) == 1) { return $result->first(); } throw new \Exception(sprintf('Query brings back %d record(s) called for singleOrFail()',$x)); }); // When a query should return 1 object, or NULL if it doesnt Builder::macro('single',function () { $result = $this->get(); if ($result->count() == 1) { return $result->first(); } return NULL; }); // When a query should return 1 object, or NULL if it doesnt Builder::macro('singleOrNew',function ($args) { //dd(['func'=>func_get_args(),'args'=>$args,'this'=>$this]); $result = $this->where($args)->get(); if ($result->count() == 1) { return $result->first(); } return $this->newModelInstance($args); }); } }