Call Server function from Client on attached Actor

Hello and Thank You.

I have an class
Backpack.h

public:
    UFUNCTION(Reliable, Server, WithValidation)
    void AddItem(AItem* item);
    virtual void AddItem_Implementation(AItem* item);
    virtual bool AddItem_Validate(AItem* item);

Backpack.cpp

void ABackpack::AddItem_Implementation(AItem *item)
{
    UE_LOG(YourLog, Warning, TEXT("[AddItem]server item %s"), *item->Name);
}

Attach Backpack to Character

void ANetworkTestCharacter::EquipOnSlot_Implementation(AItem* bp, FName slot)
{
    LocalEquipOnSlot(bp, slot);
    if(Role == ROLE_Authority) {
        UE_LOG(YourLog, Warning, TEXT("[EquipOnSlot]Slot is %s"), *slot.ToString());
        EquipOnSlot_RPC(bp, slot);
    }
}

void ANetworkTestCharacter::LocalEquipOnSlot(AItem* item, FName slot) {
    UE_LOG(YourLog, Warning, TEXT("[LocalEquipOnSlot]Slot is %s"), *slot.ToString());
    ABackpack* bp = Cast<ABackpack>(item);
    if (bp != NULL) {
        USkeletalMeshComponent* sm = bp->FindComponentByClass<USkeletalMeshComponent>();
        if(sm != NULL) {
            sm->SetSimulatePhysics(false);
            sm->SetCollisionEnabled(ECollisionEnabled::NoCollision);
        }
        bp->AttachRootComponentTo(GetMesh(), slot, EAttachLocation::SnapToTarget);
        bp->SetOwner(this);
        equiped.Add(Cast<IEquipable>(item));
    }
}

Problem part:

ABackpack* backpack = Cast<ABackpack>(*Itr);
 if(backpack != NULL) {
     backpack->AddItem(item); // Doesn't call on Server
 }