That is happening because your Model name Author does not follow the convention rules, where your should have a table named authors instead you have a table named news_authors.
You should either have a Model named NewsAuthor (note, not NewsAuthors), or you will have to change all methods to include the correct table fields as such:
return $this->hasOne('App\Phone', 'foreign_key', 'local_key');
So something like this should work for you:
public function user() {
return $this->hasOne(User::class, 'id', 'user_id');
}
Also, on your Author Model, you should have this to define your Table Name:
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'news_authors';
And this should do it