How can I solve “Relation ‘a’ is not instance of HasOne or BelongsTo.” in the laravel?

Solution:

According to your few details, please confirm if this is what you want:

Item Model:

class Item extends Model
{
  ...
  protected $fillable = [
    'name',
    'vendor_id'
  ];

  public function item_details() 
  {
      return $this->hasMany(ItemDetail::class, 'item_number', 'id');
  }
}

ItemDetail Model:

class ItemDetail extends Model
{
  ....
  protected $fillable = [
    'item_number',
    'name',
    'posting_date'
  ];

  public function item()
  {
    return $this->belongsTo(Item::class, 'item_number', 'id');
  }
}

Controller Method:

$itemDetails = ItemDetail::whereHas('item', function($q) use ($param) {
    if (isset($param['vendor']){
        $q->where('vendor_id', '=', $param['vendor']);
    }
})
->selectRaw('item.id', 'item_detail.item_number', 'sum(abs(a.quantity)) as total_quantity')
->groupBy('item_number')->paginate($paged);

View file:

@foreach($itemDetails as $itemDetail)
    @dump($itemDetail->item_number)
    @dump($itemDetail->total_quantity)
@endforeach