def transfer(self, rights_assignment_data=None, *, from_user, to_user,
                 rights_assignment_format='jsonld'):
        """Transfer this Right to another owner on the backing
        persistence layer.

        Args:
            rights_assignment_data (dict): Model data for the resulting
                :class:`~.RightsAssignment`
            from_user (any, keyword): A user based on the model specified
                by the persistence layer
            to_user (any, keyword): A user based on the model specified
                by the persistence layer
            rights_assignment_format (str, keyword, optional): Data
                format of the created entity; must be one of:

                    - 'jsonld' (default)
                    - 'json'
                    - 'ipld'

        Returns:
            :class:`~.RightsAssignment`: The RightsAssignment entity
            created from this transfer

        Raises:
            See :meth:`~.TransferrableEntity.transfer`
        """

        rights_assignment = RightsAssignment.from_data(
            rights_assignment_data or {},
            plugin=self.plugin)
        transfer_payload = rights_assignment._to_format(
            data_format=rights_assignment_format)
        transfer_id = super().transfer(transfer_payload, from_user=from_user,
                                       to_user=to_user)

        rights_assignment.persist_id = transfer_id
        return rights_assignment